package fr.afcepf.atod18.restaurants.service;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import org.springframework.stereotype.Controller;

import fr.afcepf.atod18.restaurants.dao.DaoCarte;
import fr.afcepf.atod18.restaurants.entity.Carte;
import fr.afcepf.atod18.restaurants.entity.Produit;
import fr.afcepf.atod18.restaurants.entity.Restaurant;
import fr.afcepf.atod18.restaurants.entity.TypeCuisine;
import fr.afcepf.atod18.restaurants.idao.IDaoCarte;
import fr.afcepf.atod18.restaurants.idao.IDaoRestaurant;

@Controller
public class GestionRestaurant implements IGestionRestaurant {

	private IDaoRestaurant daoRestaurant;
	private IDaoCarte daoCarte;
	
	public IDaoRestaurant getDaoRestaurant() {
		return daoRestaurant;
	}

	public IDaoCarte getDaoCarte() {
		return daoCarte;
	}

	public void setDaoCarte(IDaoCarte daoCarte) {
		this.daoCarte = daoCarte;
	}

	public void setDaoRestaurant(IDaoRestaurant daoRestaurant) {
		this.daoRestaurant = daoRestaurant;
	}

	@Override
	public void ajouterRestaurant(Restaurant restaurant) {
		daoRestaurant.ajouterRestaurant(restaurant);
	}

	@Override
	public void modifierRestaurant(Restaurant restaurant) {
		daoRestaurant.modifierRestaurant(restaurant);
	}

	@Override
	public void supprimerRestaurant(Restaurant restaurant) {
		daoRestaurant.supprimerRestaurant(restaurant);
	}

	@Override
	public List<TypeCuisine> listerTypeCuisine() {
		return daoRestaurant.listerTypeCuisine();
	}

	@Override
	public List<Restaurant> listerRestaurant() {
		return daoRestaurant.listerRestaurant();
	}

	@Override
	public List<Restaurant> listerRestaurantByTypeCuisine(int idTypeCuisine) {
		return daoRestaurant.listerRestaurantByTypeCuisine(idTypeCuisine);
	}

	@Override
	public List<Restaurant> listerRestaurantByRestaurateur(int idRestaurateur) {
		return daoRestaurant.listerRestaurantByRestaurateur(idRestaurateur);
	}

	@Override
	public List<Restaurant> listerRestaurantByVille(int idVille) {
		return daoRestaurant.listerRestaurantByVille(idVille);
	}

	@Override
	public List<Restaurant> listerRestaurantByFourchette(double fourchettePrix) {
		return daoRestaurant.listerRestaurantByFourchette(fourchettePrix);
	}

	@Override
	public Restaurant chercherRestaurant(int idRestaurant) {
		return daoRestaurant.chercherRestaurant(idRestaurant);
	}

	public GestionRestaurant()
	{
//		System.out.println("service resto");
	}

	@Override
	public void supprimerTout(List<Restaurant> liste) {
		daoRestaurant.supprimerTout(liste);		
	}
	@Override
	public List<Produit> rechercherProduitsRestaurant(int idRestaurant) {
		List<Restaurant> restaurants = daoRestaurant.chercherRestaurant2(idRestaurant);
		Carte carte = restaurants.get(0).getCartes().get(0);
		List<Produit> liste = new ArrayList(carte.getProduits());
		return liste;
	}
}
